package com.pureut.system.mapper;


import com.pureut.system.domain.MaterialBomHalf;
import com.pureut.system.domain.dto.MaterialBomHalfDto;
import com.pureut.system.domain.vo.MaterialBomVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: CM
 * @date: 2023/6/13    10:14
 */
@Mapper
public interface MaterialBomHalfMapper {

    /**
     * 查询Bom列表
     * @param materialBomVo
     * @return
     */
    List<MaterialBomHalfDto> selectBomList(MaterialBomVo materialBomVo);

    /**
     *
     * @return
     */
    long selectCount();

    /**
     * 新增Bom
     * @param materialBomHalf
     * @return
     */
    int insertBom(MaterialBomHalf materialBomHalf);

    MaterialBomHalfDto getByBomCode(String bomCode);

    /**
     * 根据BomId查出半成品信息
     * @param bomId
     * @return
     */
    MaterialBomHalfDto getByBomId(Long bomId);

    /**
     * 删除Bom信息
     * @param bomId
     * @return
     */
    int removeBom(long bomId);

    /**
     * 修改Bon的物料编码，物料id,默认标识，复制Bom
     * @param materialBomHalf
     * @return
     */
    boolean updateBom(MaterialBomHalf materialBomHalf);

    /**
     * 获取bom第一层级数据列表（委外订单新增使用）
     */
    List<MaterialBomHalfDto> getOneLevelList(MaterialBomVo materialBomVo);

    List<MaterialBomHalfDto> selectCopyBomList(MaterialBomHalf materialBomHalf);

    /**
     * 根据bom编码获取bomid
     */
    Long getBomIdByMaterialCode(String materialCode);

    /**
     * 查询默认的Bom条数
     * @param materialCode
     * @return
     */
    long selectDefault(String materialCode);

    /**
     * 修改BOM的物料名称物料规格
     * @return
     */
    boolean updateBomInfo(@Param("materialName")String materialName, @Param("materialCode")String  materialCode);

    /**
     * 修改BOM明细的物料名称物料规格
     * @param materialName
     * @param
     * @param materialCode
     * @return
     */
    boolean updateBomDetail(@Param("materialName") String materialName,@Param("materialCode") String materialCode);
}
